const fs = require('fs')
const path = require('path')

const url = path.join(__dirname,'./data.json')
function getData() {
    fs.readFile(url, 'utf8',(err, data)=> {
        if (err) {
            return console.log(err.massage);
        }
        let obj = JSON.parse(data)
        console.log(obj);
    }) 
}
// getData()

// function addData(obj) {
    
//     fs.readFile(url, 'utf8', (err, data) => {
//         if (err) return console.log(err.message);
//         let arr = JSON.parse(data)
//         obj.id = arr[arr.length - 1].id + 1
//         arr.push(obj);
//     })
//     fs.writeFile(url, JSON.stringify(arr), err => {
//         if (err) return console.log(err.message);
//         console.log('恭喜您,添加图书成功!');
//     })
// }
// addData({
//     author: '刘慈欣',
//     bookname: '三体3-黑暗森铃',
//     publisher:'武汉人民出版社'
// })
function delData(id) {
    // 1.读取信息
    fs.readFile(url, 'utf8', (err, data) => {
        // 判断
        if (err) return console.log(err.message);
        // 转换为对象
        const arr = JSON.parse(data);
        // 删除数据: 1.遍历判断元素的id不等于参数id就添加到一个新数组
        // 删除数据: 2.filter()可以直接过滤产生一个新数组
        const newArr = arr.filter(ele => id !== ele.id)
        // 添加到文件中
        fs.writeFile(url, JSON.stringify(newArr), err => {
            // 判断
            if (err) return console.log(err.massage);
            // 成功提示
            console.log('恭喜你,删除数据成功!');
        })
    })
}
// delData(4) 
function updateData(obj) {
    fs.readFile(url, 'utf8', (err, data) => {
        if (err) return console.log(err.message);
        const arr = JSON.parse(data)
        const index = arr.findIndex(ele => {
            obj.id == ele.id
        })
        arr.splice(index, 1, obj)
        fs.writeFile(url, JSON.stringify(arr), err => {
            if (err) return console.log(err.message);
            console.log('恭喜这个逼');
        })
    })
}
updateData({
    id: 6,
    author: '刘',
    bookname: '三体',
    publisher:'武汉人民出版社'
})

